=begin rdoc
Introducing schnell - A really fast web application testing in JRuby    http://code.google.com/p/schnell-jruby/

To Install JRuby:    http://code.google.com/p/schnell-jruby/
   Best is to use JRuby 1.1.2RC2 or later. You can download JRuby compiled version and unzip
   it any of folder. If you wish to use JRuby from the command line don't forget to add it to
   the path.

To install HtmlUnit:    http://htmlunit.sourceforge.net/
   Best is to use HtmlUnit 2.1 or later.
   Place all the HtmlUnit jar files in class path or simpler copy them all to the JRuby /lib/ruby/1.8 folder.

To Install schnell:
   Best way to install is to use the gem. You can download the gem from Google code project
   http://code.google.com/p/schnell-jruby/

   From your command line:
     > gem install schnell
   This will install schnell

Where To Use:
   Schnell works on Windows XP, Linux, Mac. It has been tested on XP, Mandriva Linux and Mac Leapord.
   It supports proxy servers and as of now it supports only the default browser. The support of
   other browsers is on the pipeline.

User Guide:    http://code.google.com/p/schnell-jruby/wiki/UserGuide

Unit Tests:
   Run the unit tests in a cmd shell. Go to the dir where you installed it and then type 'jruby test/run_tests.rb'.
   See the user guide if you are having problems.

Typical Usage
   # include the controller
   require 'schnell'
   include Schnell
   # create an instance of the controller
   browser = Browser.new
   # set the proxy server if you have one
   browser.set_proxy(proxy_host,proxy_port)
   # go to the page you want to test
   browser.goto('http://testserver/')
   # to enter text into a text field - assuming the field is named 'username'
   browser.text_field(:name, 'username').set('Matz')
   # if there was a text field that had an id of 'company_ID', you could set it to 'Ruby Co':
   browser.text_field(:id ,'company_ID').set('Ruby Conf')
   # to click a button that has a caption of 'Cancel'
   browser.button(:value, 'Cancel').click

  Identifying something using two or more identifying characteristics
   # Html objects can also be identified via a combination of two of the above methods,
   # for example to click a link with a text of 'Add new', one could say
   ie.link(:text => 'Add new').click

  The ways that are available to identify an html object depend upon the object type, but include
   :id           used for an object that has an ID attribute.*
   :name         used for an object that has a name attribute.*
   :value        value of text fields, captions of buttons.
   :index        finds the nth object of the specified type - eg button(:index , 2) finds the second button. This is 1 based. <br>
   :class        used for an object that has a class attribute.
   :text         used for links and other objects that contain text.

   * :id and :name are the most reliable ones, and so should be used when possible to speed up scripts.

  The objects that are currently supported include
   Button (Including image and submit)
   Radio
   CheckBox
   TextField (Including TextInput and Password)
   SelectList
   Link
   Image
   and many more. Please see the Schnell wiki for more information.

  The support for other elements is still under development. I request you also to contribute to it.

Javascript Support
   schnell allows you to access the javascript events of the elements using the object.
   Inbuilt javascript support is on the way. :)

Contacts:
   Sai Venkatakrishnan (saidesertrose2004@gmail.com)

Acknowledgements:
   Gu Hui (You are indispensable and invaluable)
   Jijesh Mohan (For helping me to do the beta and supporting me)
   Suresh Harikrishnan (For being a good patient friend and also helping me with Mac support testing)
=end
